package screen;

import game.Configurations;
import game.FontLoader;
import org.newdawn.slick.Color;
import org.newdawn.slick.TrueTypeFont;

public class Texto extends ObjetoTela {

    private String texto;
    private TrueTypeFont fonte;
    private Color c1, c2;
    private boolean mono;
    public static final Color SELECTED_COLOR = Color.yellow, REGULAR_COLOR = Color.white;
    
    //FONTHERE 2
    public static final int CENTRALIZADO = -1;

    public Texto(int x, int y, String texto) {
        this(x, y, texto, FontLoader.MENU, REGULAR_COLOR, SELECTED_COLOR);
    }

    public Texto(int x, int y, String texto, TrueTypeFont font, Color cor) {
        this(x, y, texto, font, cor, cor);
    }

    public Texto(int x, int y, String texto, TrueTypeFont fonte, Color c1, Color c2) {
        super(x, y);
        this.texto = texto;
        this.fonte = fonte;
        this.c1 = c1;
        this.c2 = c2;
        this.mono = false;
    }

    public int setMonospaced(boolean mono) {
        this.mono = mono;
        return fonte.getWidth(" ");
    }

    public void setTexto(String texto) {
        this.texto = texto;
    }

    public String getTexto() {
        return this.texto;
    }

    @Override
    public void desenhar() {
        int dX = x, dY = y;
        if (x == CENTRALIZADO)
            dX = (Configurations.SCREEN_WIDTH - fonte.getWidth(texto)) / 2;
        if (y == CENTRALIZADO)
            dY = (Configurations.SCREEN_HEIGHT - fonte.getHeight()) / 2;
        if (mono) {
            int lW = fonte.getWidth(" ");
            for (int i = 0; i < texto.length(); i++)
                fonte.drawString(dX + i * lW, dY, "" + texto.charAt(i), (selected ? c1 : c2));
        } else
            fonte.drawString(dX, dY, texto, (selected ? c1 : c2));
    }
}
